
/*
? Array.prototype.flat()  是一个内置的 Array 方法，用于将多维数组展开成一维数组。
? 该方法可以接受一个参数  depth ，用于指定需要展开的数组维度的深度，默认值为 1。当  depth  参数为 Infinity 时，可以展开任意深度的嵌套数组。
 */

Array.prototype.myFlat2 = function (depth = 1) {
    let res = []
    depth --
    for (const item of Array.from(this)) {
        if (Object.prototype.toString.call(item).includes('Array')) {
            if (depth > 0) {
                res = res.concat(item.myFlat2(depth))
            }
            else {
                res.push(...item)
            }
        }
        else {
            res.push(item)
        }
    }

    return res
}
const arr = [1, [2, 3, [4, 5, [10, 12]]], 1, 2, [6, 7]]
console.log(arr.myFlat2(2));
